Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.

...powered by www.netzwerkartist.de...

 <<   zurück
Visual Basic 2005 von Andreas Kühnel
Das umfassende Handbuch
Buch: Visual Basic 2005

Visual Basic 2005
1.233 S., mit 2 CDs, 59,90 Euro
Galileo Computing
ISBN 3-89842-585-1
gp Kapitel 8 Features von Visual Studio 2005
  gp 8.1 Die XML-Dokumentation
    gp 8.1.1 XML-Kommentare
    gp 8.1.2 Die XML-Kommentar-Tags
    gp 8.1.3 Generieren der XML-Dokumentationsdatei
  gp 8.2 Der Klassendesigner (Class Designer)
    gp 8.2.1 Ein typisches Klassendiagramm
    gp 8.2.2 Hinzufügen von Klassendiagrammen
    gp 8.2.3 Die Toolbox des Klassendesigners
    gp 8.2.4 Das Fenster »Klassendetails«
    gp 8.2.5 Das Klassendiagramm um Typen erweitern
    gp 8.2.6 Vererbungsbeziehungen definieren
    gp 8.2.7 Zuordnungen festlegen
    gp 8.2.8 Klassendiagramme als Bilder exportieren
  gp 8.3 Refactoring
    gp 8.3.1 Methode extrahieren
    gp 8.3.2 Umbenennen von Bezeichnern
    gp 8.3.3 Felder kapseln
    gp 8.3.4 Initialisierung und Deklaration zusammenführen oder trennen
    gp 8.3.5 Neuanordnung der Parameterliste
  gp 8.4 Code Snippets (Codeausschnitte)
    gp 8.4.1 Codeausschnitte einfügen
    gp 8.4.2 Die Anatomie eines Codeausschnitts


Galileo Computing

8.3 Refactoring  downtop

Mit Refactoring wird in Visual Studio 2005 erstmals eine Technik eingeführt, die bisher nur durch das Einbinden zusätzlicher Tools zu nutzen war. Refactoring ist hauptsächlich dann sinnvoll einzusetzen, wenn die Software bereits fertig ist. Sie können mit dieser Technik Änderungen am Code vornehmen, ohne dass sich das Verhalten der Anwendung ändert.

Sie werden mir beipflichten, dass während des Entwicklungsprozesses insbesondere größerer und komplexerer Software oft der Überblick über den Code verloren geht. Codepassagen wiederholen sich, Methoden werden zu komplex, weil der Modularisierung des Programmcodes zu wenig Aufmerksamkeit geschenkt wird, Variablennamen sind unpassend vergeben – typische Phänomene bei vielen Projekten. Mit der Technik des Refactorings können Sie dazu beitragen, dass der Code überschaubarer und klarer strukturiert wird. Dazu bieten sich mehrere Verfahren an:

gp  Methode extrahieren
gp  Umbenennen von Bezeichnern
gp  Felder einkapseln
gp  Variablendeklaration und -initialisierung zusammenfassen
gp  Parameter neu anordnen

Allerdings gehört dieses neue Feature, im Gegensatz zur Umgebung von C#, nicht zum Standard der VB-Entwicklungsumgebung und muss von der Microsoft-Website heruntergeladen werden. Die Adresse dazu lautet:

http://msdn.microsoft.com/vbasic/downloads/2005/tools/refactor

Die Größe der heruntergeladenen Datei beträft ca. 9 MByte. Die Installation ist benutzergeführt und nimmt nur wenige Minuten in Anspruch.


Galileo Computing

8.3.1 Methode extrahieren  downtop

Der Sinn der Modularisierung ist es, viele kleine Methoden zu haben, die leichter zu überblicken und besser zu verstehen sind als lange und bildschirmfüllende. Der Methodenbezeichner sollte so gewählt werden, dass man sofort weiß, was die Aufgabe der Methode ist.

Gerät Ihnen bei der Entwicklung eine Methode »aus den Fugen« und wollen Sie einen Teilausschnitt in einer separaten Methode bereitstellen, würden Sie vermutlich die betreffenden Codezeilen suchen, markieren, ausschneiden und in einem neuen Methodenrumpf einfügen. Danach würden Sie anstelle der ausgeschnittenen Anweisungen den Aufruf der neuen Methode codieren.

Refactoring erleichtert Ihnen diese Arbeit. Dazu markieren Sie die Codezeilen, die in eine eigene Methode überführt werden sollen. Nach der Markierung wird links unten eine Drop-down-Schaltfläche angezeigt, die Sie anklicken müssen. Sie bekommen daraufhin als einzige Auswahl »Methode extrahieren« angeboten.

Als anschauliches Beispiel soll uns die folgende Methodendefinition dienen:


Public Function TestProc() As Double
Dim IntVar As Integer
IntVar = 10
Dim result As Double = Math.Pow(2, IntVar)
Console.WriteLine("Das Ergebnis lautet: {0}", result)
Return result
End Function

In Abbildung 8.14 ist das Szenario des Auslagerns von Code zu erkennen.

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 8.14     Methode extrahieren

Bestätigen Sie das Extrahieren mit der (Enter)-Taste. Das Ergebnis ist danach wie folgt:


Private Function GetResult(ByVal IntVar As Integer) As Double
Dim result As Double = Math.Pow(2, IntVar)
Console.WriteLine("Das Ergebnis lautet: {0}", result)
Return result
End Function
Public Function TestProc() As Double
Dim IntVar As Integer
IntVar = 10
Dim result As Double = GetResult(IntVar)
Return result
End Function

Die ausgeschnittenen Codezeilen werden durch den Aufruf der neuen Methode ersetzt. Möchten Sie den Bezeichner der neuen Methode Ihren eigenen Vorstellungen gemäß anpassen, markieren Sie den Bezeichner der neuen Methode, der danach farblich hinterlegt ist, und geben Sie den gewünschten Bezeichner an. Automatisch wird gleichzeitig auch der Methodenaufruf in der ursprünglichen Methode angepasst.


Galileo Computing

8.3.2 Umbenennen von Bezeichnern  downtop

Der erste Schritt zu einem verständlichen und gut interpretierbaren Code ist eine Namensgebung, die bereits Rückschlüsse auf den Zweck und Einsatz des betreffenden Mitglieds zulässt. Eine Methode namens CreateDatabase verrät bereits sehr viel, TestProc hingegen gar nichts (auch wenn ich in diesem Buch oft genau diesen Bezeichner verwendet habe).

Zum Ende eines Projekts, wenn man den geschriebenen Code noch einmal durchsieht, fallen oft Bezeichner ins Auge, die möglicherweise besser gewählt worden wären. Früher hätten Sie wahrscheinlich darauf verzichtet, den unpassenden Bezeichner durch einen beschreibenderen zu ersetzen, denn im Anschluss daran hätten Sie den gesamten Code durchforsten müssen, um ihn an allen Stellen auszutauschen. Abgesehen davon, dass sich dabei Fehler durch Versäumnisse einschleichen können, die dafür benötigte Zeit kann anders investiert werden.

Auch für diese Fälle bietet das Refactoring durch Umbenennung jetzt die Lösung. Umbenannt werden können Felder, Eigenschaften, lokale Variablen, Methoden, Namespaces und Typdefinitionen. Der Umbenennungsprozess erfasst dabei nicht nur Deklarationen und Aufrufe, er ist zudem intelligent genug, alle Vorkommen des Elements zu erfassen.

Positionieren Sie den Cursor in dem betreffenden Bezeichner, öffnen Sie das Kontextmenü und klicken auf Umbenennen. Es öffnet sich ein Fenster, in dem Sie den neuen Namen eintragen. In Abbildung 8.15 sehen Sie das Fenster, wenn in TestProc die Variable intVar ausgewählt wird. Der neue Name ist noch nicht eingetragen.

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 8.15     Umbenennen eines Elements


Galileo Computing

8.3.3 Felder kapseln  downtop

Nach den Paradigmen der Objektorientierung sollten alle Felder gekapselt werden. .NET-Anwendungen lösen das mit Hilfe von Eigenschaften, die einen Get- und einen Set-Accesor haben. Nicht immer werden sie sich an die objektorientierten Grundsätze halten, Sie müssen es auch nicht. Daher kann es vorkommen, dass Sie eine Variable Public definiert haben, aber zu einem späteren Zeitpunkt feststellen, dass die Kapselung in einer Eigenschaft unbedingt erforderlich ist.

Ein Feld zu kapseln ist das sehr schnell möglich, wenn Sie den Cursor in Bezeichner des betreffenden Feldes gesetzt haben. Öffnen Sie dann das Kontextmenü, und wählen Sie den Menüpunkt Refactor!. Eine öffentliche Felddeklaration mit Public wird automatisch zu einer Private-Deklaration. Der Bezeichner des Feldes bleibt unverändert, den der generierten Eigenschaftsmethode werden Sie aber noch besser wählen wollen. Da mit der Kapselung möglicherweise auch eine Änderung des Aufrufs der Eigenschaft im Programmcode verbunden ist, werden auch die Anweisungen an den Bezeichner der Eigenschaftsmethode angepasst.

Nach der Bestätigung der Kapselung des in Abbildung 8.16 gezeigten Codes sieht die Klassendefinition wie folgt aus:


Public Class TestClass
Private myName As String
Public Property MyName1() As String
Get
Return myName
End Get
Set(ByVal value As String)
myName = value
End Set
End Property
Sub Test()
MyName1 = 234
End Sub
End Class

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 8.16     Kapseln eines Feldes

Der Bezeichner der Eigenschaftsmethode wurde hierbei noch nicht manuell geändert.


Galileo Computing

8.3.4 Initialisierung und Deklaration zusammenführen oder trennen  downtop

Eine von der Deklaration getrennte Initialisierung einer Variablen, wie beispielsweise


Dim intVar As Integer
intVar = 22

lässt sich mittels Refactor sehr einfach und schnell zusammenführen. Der Weg führt auch hier über das Kontextmenü und Refactor!, nachdem Sie den Cursor in eine der beiden Variablenbezeichner gesetzt haben. Das Resultat der Änderung ist die einzeilige Deklaration und Initialisierung:


Dim intVar As Integer = 22

Den genau umgekehrten Weg können Sie natürlich auch beschreiten und eine zusammengefasste Initialisierungsdeklaration wieder trennen.


Galileo Computing

8.3.5 Neuanordnung der Parameterliste  toptop

Als Letztes möchte ich Ihnen noch vorstellen, wie Sie mehrere Parameter einer Parameterliste neu anordnen können. Es ist nicht so, dass ich diese Möglichkeit als besonders wichtig einstufe, vielmehr wird die Anordnung recht eindrucksvoll im Code-Editor animiert. Alleine das ist schon das Ausprobieren wert.

Testen Sie das Feature an einer Methode ähnlich der folgenden:


Public Function Addition(ByVal x As Long, ByVal y As Long) As Long
Return x + y
End Function

Wie zuvor führt auch hierbei der Weg über das Kontextmenü, nachdem Sie den Cursor auf einen der beiden Parameter gesetzt haben.

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 8.17     Neuanordnung der Parameter einer Parameterliste

Mit den Steuerungstasten können Sie nun den ausgewählten Parameter verschieben. Das Eindrucksvolle dabei ist, dass die Verschiebung auch visualisiert worden ist, was natürlich durch eine einfache Abbildung überhaupt nicht wiedergegeben werden kann.

 <<   zurück
  
  Zum Katalog
Zum Katalog: Visual Basic 2005
Visual Basic 2005
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Visual C# 2005






 Visual C# 2005


Zum Katalog: Fortgeschrittene Programmierung mit Visual C# 2005






 Fortgeschrittene
 Programmierung
 mit Visual C# 2005


Zum Katalog: Das Programmierhandbuch SQL Server 2005






 Das Programmier-
 handbuch
 SQL Server 2005


Zum Katalog: Einstieg in Visual Basic 2005






 Einstieg in
 Visual Basic 2005


Zum Katalog: Einstieg in Visual C# 2005






 Einstieg in
 Visual C# 2005


Zum Katalog: Konzepte und Lösungen für Microsoft-Netzwerke






 Konzepte und
 Lösungen für
 Microsoft-Netzwerke


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo








Copyright © Galileo Press 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de